#!/usr/bin/env python
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# chkconfig: 2345 90 20
# description: hive metastore

import sys
sys.path.append('/usr/local/fbprojects/fb303/scripts')

import fb303_scripts

# thrift python packages need to be installed
import thrift
from thrift import protocol, transport
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.transport import *

if (len(sys.argv) > 2):
    port = int(sys.argv[2])
else:
    port = 9082
    
if (len(sys.argv) > 1):
    retval = fb303_scripts.service_ctrl('hive.metastore',
                                        port,
                                        sys.argv[1],
                                        binary_name = "start_meta_store_thrift_server.sh",
                                        trans_factory = thrift.transport.TTransport.TBufferedTransportFactory(),
                                        prot_factory = TBinaryProtocol.TBinaryProtocolFactory())
    sys.exit(retval)
else:
    print 'metastore_ctrl requires a command: start, stop, restart, reload, force-reload, status, or version'
    sys.exit(2)
